import win32com.client

def start_canoe(config_path):
    """
    启动 CANoe 并加载配置
    参数：
        config_path (str): CANoe 配置文件路径
    返回：
        win32com.client.Dispatch: CANoe 应用程序对象
    """
    canoe = win32com.client.Dispatch("CANoe.Application")
    canoe.LoadConfiguration(config_path)
    canoe.Start()
    return canoe

def get_signal_value(canoe, message_id, signal_name):
    """
    获取指定消息中指定信号的值
    参数：
        canoe (win32com.client.Dispatch): CANoe 应用程序对象
        message_id (int): 消息的ID
        signal_name (str): 信号的名称
    返回：
        int: 信号的值
    """
    database = canoe.Configuration.Database
    message = database.GetMessage(message_id)
    signal = message.GetSignal(signal_name)
    return int(signal.Value)

def stop_canoe(canoe):
    """
    停止 CANoe 仿真
    参数：
        canoe (win32com.client.Dispatch): CANoe 应用程序对象
    """
    canoe.Stop()